package com.quick.develop.flowable.framework.enums.istance;

import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @description  流程实例的删除原因
 * @author junyuan.liu
 * @date 2022/4/29 13:18
 */

@Getter
@AllArgsConstructor
public enum BpmProcessInstanceDeleteReasonEnum {

    /**
     * 修改文案时，需要注意 isRejectReason 方法
     */
    REJECT_TASK("不通过任务，原因：{}") , 
    CANCEL_TASK("主动作废流程，原因：{}") ,
    ADMIN_CANCEL_TASK("管理员作废流程")
    ;

    private final String reason;

    /**
     * 格式化理由
     *
     * @param args 参数
     * @return 理由
     */
    public String format(Object... args) {
        return StrUtil.format(reason, args);
    }

    // ========== 逻辑 ==========

    public static boolean isRejectReason(String reason) {
        return StrUtil.startWith(reason, "不通过任务，原因：");
    }

}
